package com.bugstack.trigger.api;

import com.bugstack.trigger.api.dto.*;
import com.bugstack.types.model.Response;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author: czb
 * @Description: TODO
 * @DateTime: 2025/3/30 14:17
 **/
public interface IRaffleActivityService {
    /**
     * 装配活动
     * @param activityId
     * @return
     */
    Response<Boolean> armory(Long activityId);

    /**
     * 抽奖
     * @param activityDrawRequestDTO 抽奖参数
     * @return
     */
    Response<ActivityDrawResponseDTO> draw(ActivityDrawRequestDTO activityDrawRequestDTO);

    /**
     * 签到
     * @param userId 用户id
     * @return
     */
    Response<Boolean> signRebate(String userId);

    /**
     * 查询今日是否签到
     * @param userId 用户id
     * @return
     */
    Response<Boolean> isSignRebate(String userId);

    /**
     * 查询次数账户
     * @param queryAccountRequestDTO 查询参数
     * @return
     */
    Response<QueryAccountResponseDTO> queryUserActivityAccount(QueryAccountRequestDTO queryAccountRequestDTO);

    /**
     * 查询sku商品列表
     * @param activityId 活动id
     * @return
     */
    Response<List<SkuProductResponseDTO>> querySkuProductListByActivityId(Long activityId);

    /**
     * 查询用户账户积分
     * @param userId 用户id
     * @return
     */
    Response<BigDecimal> queryUserCreditAccount(String userId);

    /**
     * 积分兑换sku
     * @param shopCartRequestDTO 请求参数
     * @return
     */
    Response<Boolean> creditPayExchangeSku(SkuProductShopCartRequestDTO shopCartRequestDTO);
}
